{"version":3,"file":"DitherSpringType.DfDiSChR.mjs","names":["React.useRef","React.useState","React.useMemo","React.useCallback","__esmMin","init_npm_react_18_3_1","window","pe","init_ssg_sandbox_shims","ce","ne","p","init_jsx_runtime","_e","de","useIsStaticRenderer","addPropertyControls","ControlType","init_framer_CaDWdxiz","varFallback","comma","input","depth","i","ch","tokenValue","read","el","name","walk","start","v","direct","scope","lastColourScope","candidates","cssColour","value","fallback","now","hit","colourCache","resolvedInput","missing","inner","probe","out","resolveTokenColor","element","toRGBA","colourProbe","colour","d","mixRGBA","m","a","b","t","particleTint","r","g","PARTICLE_TINT","clamp01","smoothstep","x","edge0","edge1","hashXY","h","y","fontString","font","size","applyLetterSpacing","spacing","typed","ctx","justifyFor","f","align","letterSpacingPx","widestLinePx","widest","line","lines","w","lineHeightPx","lh","fontSize","trimmed","n","measureGlyphMetrics","fallbackAscent","fallbackDescent","metrics","text","inkLayoutFromMetrics","inkHeight","frameH","lineBox","baseline","inkMid","measureInkLayout","parseFontSize","match","fittedFrameHeight","parsed","lineCount","coil","spiralOn","clamp","finiteOr","amplitude","easeProgress","curve","qualityCap","q","quality","requested","width","DitherSpringType","DEFAULT_INSET","props","isStaticRenderer","wrapperRef","backCanvasRef","frontCanvasRef","dottedCanvasRef","sizeRef","particlesRef","visibilityRef","reducedMotionRef","rafRef","phaseRef","lastTsRef","geomKeyRef","appearStartRef","appearProgressRef","measuredBox","setMeasuredBox","poolRef","backRef","frontRef","safeProps","turnsSafe","turns","amplitudeSafe","spreadSafe","spread","thicknessSafe","thickness","particleCountSafe","particleCount","speedSafe","spinSpeed","particleSizeSafe","particleSize","mixSafe","mix","perspectiveSafe","perspective","textDepthSafe","textDepth","appearDelaySafe","appearDelay","appearDurationSafe","appearDuration","rayLengthSafe","rayLength","rayOpacitySafe","rayOpacity","easingRaw","appearEasing","qRaw","scaleFromSafe","scaleFrom","maxTextScaleSafe","maxTextScale","edgeFadeSafe","edgeFade","fadeAxisRaw","fadeAxis","particleColour","particleA","particleSizePx","appear","spiral","dotted","fitWidth","draw","backCanvas","frontCanvas","backCtx","frontCtx","height","dpr","coilScale","spanWidth","amplitudePx","tubeRadius","maxPoints","geomKey","forceRebuild","newParticles","tBase","jitterT","hash01","phase","z","ringAngle","ringRadius","oy","oz","jitter","useB","cx","cy","rotationX","cosX","sinX","ampScale","perspStrength","focal","baseSize","fadeAmt","fadeHoriz","fadeVert","appearOn","rayLen","appearProgress","entering","head","pool","liveCount","pts","reveal","glow","behind","settle","y1","z1","denom","persp","sx","sy","edge","nx","ny","sizePx","slot","textPlaneZ","back","front","item","byDepth","drawPass","items","x0","y0","renderNow","rebuild","stopLoop","tickRef","ts","dt","since","linear","entranceRunning","syncScheduler","entrancePending","skip","root","updateSize","cap","nextW","nextH","canvas","prev","resizeObserver","media","apply","observer","inView","entries","fadeMask","amount","stop","end","axis","horizontal","vertical","insetFrac","inset","hovered","setHovered","hoverRef","repaintRef","underline","hoverDots","host","on","off","copy","kept","row","stackWords","words","fontTick","setFontTick","alive","bump","scaledFont","base","from","unitPx","room","at100","fit","wrap","context","ink","dots","baseInk","hoverInk","inkMix","lastPaint","reduceMotion","copyLines","shouldAssemble","maxRadius","driftDistance","field","frame","running","resize","ratio","build","offCtx","dottedInk","blockTop","pixels","pitch","dotSize","columns","rows","threshold","weight","column","alpha","coverage","spreadN","paint","progress","seconds","time","idle","shimmer","target","dot","wave","radius","offset","ro","loop","layerStyle","fitHeight","incomingHeight","style","usesFitHeight","_height","_minHeight","restStyle","textColor","splitLines","underlineWeight","underlineColor","init_DitherSpringType","max","min","s"],"sources":["https:/framerusercontent.com/modules/vhT5t49OHZFa8AWEFIIV/MfV8vrd9NAD4oMKoxJhW/DitherSpringType.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const clamp=(v,min,max)=>Math.min(max,Math.max(min,v));const hash01=n=>{const x=Math.sin(n*127.1+311.7)*43758.5453123;return x-Math.floor(x);};const byDepth=(a,b)=>a.z-b.z;// Canvas 2D can't read CSS variables, so a colour style (`var(--token-…)`,\n// often with a fallback and a name comment attached) has to be turned into a\n// real colour first. The browser does it: a hidden probe inside the component\n// takes the value as its text colour, and the computed colour comes back.\nconst colourCache=new Map;function varFallback(input){const comma=input.indexOf(\",\");if(comma<0)return\"\";let depth=0;for(let i=comma+1;i<input.length;i++){const ch=input[i];if(ch===\"(\")depth++;else if(ch===\")\"){if(depth===0)return input.slice(comma+1,i).trim();depth--;}}return\"\";}// Last connected element a component handed us, used when a call has none.\nlet lastColourScope=null;// Reads a custom property (a colour style) by name. Walks up from the component\n// first, then the last known component, then the page, so a colour style\n// resolves on the canvas, in preview and on the live site alike.\nfunction tokenValue(name,scope){if(typeof document===\"undefined\")return\"\";const read=el=>{if(!el)return\"\";try{return getComputedStyle(el).getPropertyValue(name).trim();}catch{return\"\";}};const walk=start=>{let el=start&&start.isConnected?start:null;while(el){const v=read(el);if(v)return v;el=el.parentElement;}return\"\";};const direct=walk(scope)||walk(lastColourScope)||read(document.body)||read(document.documentElement);if(direct)return direct;const candidates=document.querySelectorAll(\"[data-framer-name], [data-framer-component-type]\");for(let i=0;i<candidates.length&&i<40;i++){const v=read(candidates[i]);if(v)return v;}return\"\";}function cssColour(value,scope,fallback){const input=String(value??\"\").replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").trim();if(!input)return fallback;if(!/var\\(/i.test(input))return input;if(typeof document===\"undefined\")return varFallback(input)||fallback;if(scope&&scope.isConnected)lastColourScope=scope;const now=Date.now();const hit=colourCache.get(input);if(hit&&now-hit.at<1e3)return hit.value;// Swap every var() for its real value, so a missing style can never fall\n// through to the inherited colour (black).\nlet resolvedInput=input;let missing=false;for(let i=0;i<4&&/var\\(/i.test(resolvedInput);i++){resolvedInput=resolvedInput.replace(/var\\(\\s*(--[\\w-]+)\\s*(?:,\\s*((?:[^()]|\\([^()]*\\))*))?\\)/g,(_match,name,inner)=>{const v=tokenValue(name,scope);if(v)return v;if(inner&&inner.trim())return inner.trim();missing=true;return\"\";});}// Not found yet: use the fallback and try again on the next call.\nif(missing||!resolvedInput.trim())return varFallback(input)||fallback;const probe=document.createElement(\"span\");probe.style.color=resolvedInput;if(!probe.style.color)return varFallback(input)||fallback;probe.style.display=\"none\";const host=scope&&scope.isConnected?scope:document.body;host.appendChild(probe);const out=getComputedStyle(probe).color||fallback;probe.remove();colourCache.set(input,{at:now,value:out});return out;}function resolveTokenColor(value,element,fallback){return cssColour(value,element,fallback);}let colourProbe=null;/** Any CSS colour to [r, g, b, a] (0-255, alpha 0-1). */function toRGBA(colour){if(!colourProbe){const probe=document.createElement(\"canvas\");probe.width=probe.height=1;colourProbe=probe.getContext(\"2d\",{willReadFrequently:true});}if(!colourProbe)return[18,17,16,1];colourProbe.clearRect(0,0,1,1);colourProbe.fillStyle=colour;colourProbe.fillRect(0,0,1,1);const d=colourProbe.getImageData(0,0,1,1).data;return[d[0],d[1],d[2],d[3]/255];}function mixRGBA(a,b,t){const m=i=>a[i]+(b[i]-a[i])*t;return`rgba(${Math.round(m(0))}, ${Math.round(m(1))}, ${Math.round(m(2))}, ${m(3)})`;}// Particle B is a light tint of Particle A, so one colour (ideally a colour\n// style) drives the whole spiral.\nconst PARTICLE_TINT=.58;function particleTint(colour){if(typeof document===\"undefined\")return colour;const[r,g,b,a]=toRGBA(colour);return mixRGBA([r,g,b,a],[255,255,255,a],PARTICLE_TINT);}function clamp01(value){return value<0?0:value>1?1:value;}function smoothstep(edge0,edge1,x){const t=clamp01((x-edge0)/Math.max(1e-6,edge1-edge0));return t*t*(3-2*t);}function hashXY(x,y){let h=x*374761393+y*668265263|0;h=(h^h>>>13)*1274126177|0;return((h^h>>>16)>>>0)/4294967295;}function fontString(font,size){const style=font?.fontStyle||\"normal\";const weight=font?.fontWeight||700;const family=font?.fontFamily||'\"Inter Display\", Inter, sans-serif';return`${style} ${weight} ${size}px ${family}`;}function applyLetterSpacing(ctx,font){const spacing=font?.letterSpacing;if(spacing==null)return;const typed=ctx;if(\"letterSpacing\"in typed)typed.letterSpacing=String(spacing);}// Default horizontal breathing room either side of the type, in percent.\nconst DEFAULT_INSET=4;function justifyFor(font){const f=font??{};const align=String(f.textAlign??f.textAlignment??\"center\");if(align===\"left\"||align===\"start\")return\"flex-start\";if(align===\"right\"||align===\"end\")return\"flex-end\";return\"center\";}function letterSpacingPx(value,size){if(typeof value===\"number\"&&Number.isFinite(value))return value;if(typeof value!==\"string\")return 0;const n=parseFloat(value);if(!Number.isFinite(n))return 0;return value.trim().endsWith(\"em\")?n*size:n;}/**\n * Width of the widest line at `size`. Letter-spacing is added by hand rather\n * than through ctx.letterSpacing so em spacing scales with the size in every\n * browser.\n */function widestLinePx(lines,font,size){if(typeof document===\"undefined\")return 0;const ctx=document.createElement(\"canvas\").getContext(\"2d\");if(!ctx)return 0;ctx.font=fontString(font,size);const spacing=letterSpacingPx(font?.letterSpacing,size);let widest=0;for(const line of lines){const w=ctx.measureText(line||\" \").width+spacing*Array.from(line).length;if(w>widest)widest=w;}return widest;}function parsePx(value){if(typeof value===\"number\"&&Number.isFinite(value))return value;if(typeof value===\"string\"){const n=parseFloat(value);if(Number.isFinite(n))return n;}return 0;}function lineHeightPx(font,fontSize){const lh=font?.lineHeight;if(typeof lh===\"number\"&&Number.isFinite(lh)){return lh>0&&lh<5?lh*fontSize:lh;}if(typeof lh===\"string\"){const trimmed=lh.trim();if(trimmed.endsWith(\"em\"))return parseFloat(trimmed)*fontSize;if(trimmed.endsWith(\"px\"))return parseFloat(trimmed);const n=parseFloat(trimmed);if(Number.isFinite(n))return n>0&&n<5?n*fontSize:n;}return fontSize;}function measureGlyphMetrics(text,font,fontSize){const fallbackAscent=fontSize*.73;const fallbackDescent=fontSize*.22;const fallback={inkAscent:fallbackAscent,inkDescent:fallbackDescent,fontAscent:fontSize*.92,fontDescent:fontSize*.2,fontSize};if(typeof document===\"undefined\")return fallback;const canvas=document.createElement(\"canvas\");const ctx=canvas.getContext(\"2d\");if(!ctx)return fallback;ctx.font=fontString(font,fontSize);applyLetterSpacing(ctx,font);const metrics=ctx.measureText(text||\" \");return{inkAscent:metrics.actualBoundingBoxAscent||fallbackAscent,inkDescent:metrics.actualBoundingBoxDescent||fallbackDescent,fontAscent:metrics.fontBoundingBoxAscent||fallback.fontAscent,fontDescent:metrics.fontBoundingBoxDescent||fallback.fontDescent,fontSize};}function inkLayoutFromMetrics(metrics,font,frameH){const inkHeight=Math.max(8,metrics.inkAscent+metrics.inkDescent);if(frameH<2){return{inkHeight,inkMid:0,shiftY:0,ascent:metrics.inkAscent,descent:metrics.inkDescent};}const lineBox=Math.max(1,lineHeightPx(font,metrics.fontSize));const lineTop=(frameH-lineBox)/2;const halfLeading=(lineBox-(metrics.fontAscent+metrics.fontDescent))/2;const baseline=lineTop+halfLeading+metrics.fontAscent;const inkTop=baseline-metrics.inkAscent;const inkBottom=baseline+metrics.inkDescent;const inkMid=(inkTop+inkBottom)/2;return{inkHeight,inkMid,shiftY:frameH*.5-inkMid,ascent:metrics.inkAscent,descent:metrics.inkDescent};}function measureInkLayout(text,font,fontSize,frameH){return inkLayoutFromMetrics(measureGlyphMetrics(text,font,fontSize),font,frameH);}/**\n * Splits a Font control's size into value + unit. The control hands back either\n * a number or a string like \"112px\", and rem has to survive the round trip so a\n * buyer working in rem does not silently get pixels back.\n */function parseFontSize(value){if(typeof value===\"number\"&&Number.isFinite(value)){return{value,unit:\"px\"};}if(typeof value===\"string\"){const match=value.trim().match(/^(-?[\\d.]+)(px|rem|em)?$/i);if(match){const n=Number(match[1]);if(Number.isFinite(n)){return{value:n,unit:(match[2]||\"px\").toLowerCase()};}}}return null;}function fittedFrameHeight(font,spiralOn,amplitude,lineCount=1){const parsed=parseFontSize(font?.fontSize);const size=parsed?parsed.value:112;const line=Math.max(size,lineHeightPx(font,size))*Math.max(1,lineCount);const coil=spiralOn?size*clamp(finiteOr(amplitude,.32),.05,.6)*1.15:size*.08;return Math.max(48,Math.ceil(line+coil*2));}/**\n * Entrance easing. Linear is a constant-velocity ray that starts and stops\n * abruptly; the others let it accelerate away and coast to a stop, which is\n * what makes the spring look like it is being drawn rather than scanned.\n */function easeProgress(t,curve){const x=clamp(t,0,1);switch(curve){case\"linear\":return x;case\"out\":return 1-Math.pow(1-x,3);case\"inOut\":return x<.5?4*x*x*x:1-Math.pow(-2*x+2,3)/2;default:// \"smooth\" — smootherstep, gentle at both ends with no hard corner\nreturn x*x*x*(x*(x*6-15)+10);}}const finiteOr=(value,fallback)=>typeof value===\"number\"&&Number.isFinite(value)?value:fallback;const particleSizePx=size=>{const s=clamp(Math.round(size),1,4);return s===4?5:s;};function qualityCap(quality,width,requested){const q=String(quality||\"high\").toLowerCase();if(q===\"high\")return requested;if(q===\"low\")return Math.min(requested,1600);if(width<480)return Math.min(requested,5e3);if(width<720)return Math.min(requested,11e3);return Math.min(requested,18e3);}/**\n * DitherSpringType\n *\n * A sharp field of dithered particles forming a thick, spinning spiral tube\n * that wraps a headline in 3D. The tube is split at the text's depth plane and\n * painted onto two canvases — the half behind the text and the half in front —\n * with the type sandwiched between them, so the spring genuinely passes behind\n * the letterforms and back out in front of them as it turns.\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicHeight 280\n */export default function DitherSpringType(props){const{text,font,textColor,dotted=false,dots=\"var(--token-bc29dd3c-0c4d-4aed-b885-5afca02e7fa7, rgb(18, 17, 16))\",dotSize=2.6,spacing=9,weight=.5,shimmer=.18,spiral=true,textDepth,edgeFade,fadeAxis,appear,appearDelay,appearDuration,rayLength,rayOpacity,appearEasing,scaleFrom,maxTextScale,fitWidth=false,stackWords=false,splitLines=false,inset=DEFAULT_INSET,underline=false,underlineColor,underlineWeight=4,hoverDots,particleA,particleB,turns,amplitude,spread,thickness,particleCount,particleSize,mix,spinSpeed,perspective,quality,style}=props;const isStaticRenderer=useIsStaticRenderer();const wrapperRef=React.useRef(null);const backCanvasRef=React.useRef(null);const frontCanvasRef=React.useRef(null);const dottedCanvasRef=React.useRef(null);const sizeRef=React.useRef({width:0,height:0,dpr:1});const particlesRef=React.useRef([]);const visibilityRef=React.useRef(true);const reducedMotionRef=React.useRef(false);const rafRef=React.useRef(null);const phaseRef=React.useRef(.35);const lastTsRef=React.useRef(null);const geomKeyRef=React.useRef(\"\");// Entrance clock: starts the first time the component scrolls into view.\nconst appearStartRef=React.useRef(null);const appearProgressRef=React.useRef(0);// Reused every frame. Rebuilding these per frame meant allocating one\n// object per particle at 60fps, and the resulting GC churn was visible as\n// stutter during the entrance.\nconst[measuredBox,setMeasuredBox]=React.useState({width:0,height:0});const poolRef=React.useRef([]);const backRef=React.useRef([]);const frontRef=React.useRef([]);const safeProps=React.useMemo(()=>{const turnsSafe=finiteOr(turns,6);const amplitudeSafe=finiteOr(amplitude,.32);const spreadSafe=finiteOr(spread,1);const thicknessSafe=finiteOr(thickness,.34);const particleCountSafe=finiteOr(particleCount,3200);const speedSafe=finiteOr(spinSpeed,.33);const particleSizeSafe=finiteOr(particleSize,1);const mixSafe=finiteOr(mix,.32);const perspectiveSafe=finiteOr(perspective,2.9);const textDepthSafe=finiteOr(textDepth,0);const appearDelaySafe=finiteOr(appearDelay,0);const appearDurationSafe=finiteOr(appearDuration,2.6);const rayLengthSafe=finiteOr(rayLength,.12);const rayOpacitySafe=finiteOr(rayOpacity,1);const easingRaw=String(appearEasing||\"smooth\");const qRaw=String(quality||\"high\").toLowerCase();const scaleFromSafe=finiteOr(scaleFrom,1200);const maxTextScaleSafe=finiteOr(maxTextScale,1.4);const edgeFadeSafe=finiteOr(edgeFade,.12);const fadeAxisRaw=String(fadeAxis||\"horizontal\").toLowerCase();const particleColour=cssColour(particleA,null,\"#E43A3A\");return{particleA:particleColour,particleB:particleTint(particleColour),turns:clamp(turnsSafe,2,16),amplitude:clamp(amplitudeSafe,.05,.6),spread:clamp(spreadSafe,.3,2),thickness:clamp(thicknessSafe,.05,.6),particleCount:clamp(Math.round(particleCountSafe),200,2e4),speed:clamp(speedSafe,0,1),ditherSize:particleSizePx(particleSizeSafe),mix:clamp(mixSafe,0,1),perspective:clamp(perspectiveSafe,.8,4),textDepth:clamp(textDepthSafe,-1,1),appear:appear!==false,appearDelay:clamp(appearDelaySafe,0,10),appearDuration:clamp(appearDurationSafe,.1,10),rayLength:clamp(rayLengthSafe,.01,.4),rayOpacity:clamp(rayOpacitySafe,0,1),appearEasing:easingRaw===\"linear\"||easingRaw===\"out\"||easingRaw===\"inOut\"?easingRaw:\"smooth\",quality:qRaw===\"low\"?\"low\":qRaw===\"auto\"?\"auto\":\"high\",scaleFrom:clamp(scaleFromSafe,320,3840),maxTextScale:clamp(maxTextScaleSafe,1,3),edgeFade:clamp(edgeFadeSafe,0,.85),fadeAxis:fadeAxisRaw===\"vertical\"||fadeAxisRaw===\"both\"?fadeAxisRaw:\"horizontal\",spiral:spiral!==false,dotted:dotted===true,fitWidth:fitWidth===true};},[particleA,turns,amplitude,spread,thickness,particleCount,spinSpeed,particleSize,mix,perspective,textDepth,appear,appearDelay,appearDuration,rayLength,rayOpacity,appearEasing,quality,scaleFrom,maxTextScale,edgeFade,fadeAxis,spiral,dotted,fitWidth]);const draw=React.useCallback(forceRebuild=>{const backCanvas=backCanvasRef.current;const frontCanvas=frontCanvasRef.current;if(!backCanvas||!frontCanvas)return;const backCtx=backCanvas.getContext(\"2d\");const frontCtx=frontCanvas.getContext(\"2d\");if(!backCtx||!frontCtx)return;const{width,height,dpr}=sizeRef.current;if(width<=0||height<=0)return;for(const ctx of[backCtx,frontCtx]){ctx.setTransform(dpr,0,0,dpr,0,0);ctx.clearRect(0,0,width,height);ctx.imageSmoothingEnabled=false;}if(!safeProps.spiral)return;// With Fit Width the frame height already tracks the type, so the\n// coil follows it without a second width-based boost.\nconst coilScale=safeProps.fitWidth||safeProps.maxTextScale<=1||width<=safeProps.scaleFrom?1:Math.min(width/safeProps.scaleFrom,safeProps.maxTextScale);const spanWidth=width*safeProps.spread*coilScale;const amplitudePx=clamp(height*safeProps.amplitude*coilScale,Math.min(8,height*.06),height*.62*coilScale);const tubeRadius=amplitudePx*safeProps.thickness;const maxPoints=qualityCap(safeProps.quality,width,safeProps.particleCount);const geomKey=[safeProps.turns.toFixed(3),amplitudePx.toFixed(3),tubeRadius.toFixed(3),spanWidth.toFixed(2),maxPoints,safeProps.ditherSize,safeProps.mix.toFixed(3),width.toFixed(1),height.toFixed(1),coilScale.toFixed(3)].join(\"|\");if(forceRebuild||geomKey!==geomKeyRef.current){geomKeyRef.current=geomKey;const newParticles=[];for(let i=0;i<maxPoints;i++){const tBase=i/Math.max(1,maxPoints-1);const jitterT=(hash01(i*17.31+2.9)-.5)*(1/Math.max(1,maxPoints))*1.4;const t=clamp(tBase+jitterT,0,1);const phase=t*safeProps.turns*Math.PI*2;const x=(t-.5)*spanWidth;const y=amplitudePx*Math.cos(phase);const z=amplitudePx*Math.sin(phase);// Fill the full tube cross-section (not just its shell)\n// so a thick spiral reads as solid, even with few points.\nconst ringAngle=hash01(i*41.7)*Math.PI*2;const ringRadius=tubeRadius*Math.sqrt(hash01(i*7.13+3.4));const oy=Math.cos(ringAngle)*ringRadius;const oz=Math.sin(ringAngle)*ringRadius;const jitter=Math.max(.15,safeProps.ditherSize*.18);const useB=hash01(i*29.1+19.7)<safeProps.mix;newParticles.push({x:x+(hash01(i*2.17)-.5)*safeProps.ditherSize*.12,y:y+oy,z:z+oz,t,useB,jitterX:(hash01(i*3.123)-.5)*jitter,jitterY:(hash01(i*5.987)-.5)*jitter,sizeMul:.95+hash01(i*11.3)*.12});}particlesRef.current=newParticles;}const cx=width*.5;const cy=height*.5;const rotationX=phaseRef.current;const cosX=Math.cos(rotationX);const sinX=Math.sin(rotationX);const ampScale=1+Math.sin(phaseRef.current*.85)*.03;const perspStrength=safeProps.perspective;const focal=Math.min(width,height)*(.32+perspStrength*.72);const baseSize=Math.max(1,safeProps.ditherSize*coilScale);const fadeAmt=safeProps.edgeFade;const fadeHoriz=fadeAmt>.001&&safeProps.fadeAxis!==\"vertical\";const fadeVert=fadeAmt>.001&&(safeProps.fadeAxis===\"vertical\"||safeProps.fadeAxis===\"both\");// Entrance: a single ray runs along the spiral path itself. Because\n// t maps to both the x position and the coil angle, advancing it\n// corkscrews the ray through the helix rather than sweeping a flat\n// band across the frame. Nothing exists ahead of it; right behind it\n// the tube blooms out of its own axis, so the ray draws the spring.\nconst appearOn=safeProps.appear;const rayLen=safeProps.rayLength;const appearProgress=appearOn?appearProgressRef.current:1;const entering=appearOn&&appearProgress<1;// overshoot by one ray length so the far end finishes settling\nconst head=appearProgress*(1+rayLen);const pool=poolRef.current;let liveCount=0;const pts=particlesRef.current;for(let i=0;i<pts.length;i++){const p=pts[i];let reveal=1;let glow=0;if(entering){const behind=head-p.t;if(behind<0)continue;// the ray has not arrived yet\nconst settle=clamp(behind/rayLen,0,1);reveal=settle*settle*(3-2*settle)// smoothstep\n;// brightest exactly at the head, gone by the end of the ray\nconst g=1-settle;glow=g*g*(3-2*g);}const x=p.x;const y=p.y*ampScale*reveal;const z=p.z*ampScale*reveal;const y1=y*cosX-z*sinX;const z1=y*sinX+z*cosX;const denom=focal+z1;if(denom<=8)continue;const persp=focal/denom;const sx=cx+(x+p.jitterX)*persp;const sy=cy+(y1+p.jitterY)*persp;let edge=1;if(fadeHoriz){const nx=sx/Math.max(1,width);if(nx<fadeAmt)edge*=smoothstep(0,fadeAmt,nx);else if(nx>1-fadeAmt)edge*=smoothstep(0,fadeAmt,1-nx);}if(fadeVert){const ny=sy/Math.max(1,height);if(ny<fadeAmt)edge*=smoothstep(0,fadeAmt,ny);else if(ny>1-fadeAmt)edge*=smoothstep(0,fadeAmt,1-ny);}if(edge<=.01)continue;// Uniform, flat appearance — no near/far shading.\n// The ray head is the one exception: it burns slightly brighter\n// and fatter so it reads as a travelling point of light.\nconst sizePx=Math.max(1,Math.round(baseSize*p.sizeMul*(1+glow*.9)));let slot=pool[liveCount];if(slot===undefined){slot={sx:0,sy:0,z:0,alpha:1,color:\"\",size:1};pool[liveCount]=slot;}slot.sx=sx;slot.sy=sy;slot.z=z1;slot.alpha=clamp((reveal+glow*safeProps.rayOpacity)*edge,0,1);slot.color=p.useB?safeProps.particleB:safeProps.particleA;slot.size=sizePx;liveCount++;}// The text sits on its own depth plane. Everything further away is\n// painted under it, everything nearer over it, so the tube reads as\n// genuinely wrapping the letterforms rather than sitting on top.\nconst textPlaneZ=safeProps.textDepth*amplitudePx;const back=backRef.current;const front=frontRef.current;back.length=0;front.length=0;for(let i=0;i<liveCount;i++){const item=pool[i];if(item.z<textPlaneZ)back.push(item);else front.push(item);}back.sort(byDepth);front.sort(byDepth);const drawPass=(ctx,items)=>{for(let i=0;i<items.length;i++){const p=items[i];const sizePx=p.size;const x0=Math.round(p.sx-sizePx*.5);const y0=Math.round(p.sy-sizePx*.5);ctx.globalAlpha=p.alpha;ctx.fillStyle=p.color;ctx.fillRect(x0,y0,sizePx,sizePx);}ctx.globalAlpha=1;};drawPass(backCtx,back);drawPass(frontCtx,front);},[safeProps]);const renderNow=React.useCallback(rebuild=>{if(!backCanvasRef.current||!frontCanvasRef.current)return;const{width,height}=sizeRef.current;if(width<=0||height<=0)return;draw(rebuild);},[draw]);const stopLoop=React.useCallback(()=>{if(typeof window===\"undefined\")return;if(rafRef.current!==null){cancelAnimationFrame(rafRef.current);rafRef.current=null;}lastTsRef.current=null;},[]);const tickRef=React.useRef(()=>undefined);tickRef.current=ts=>{if(lastTsRef.current===null)lastTsRef.current=ts;const dt=Math.min(.05,(ts-lastTsRef.current)/1e3);lastTsRef.current=ts;phaseRef.current+=dt*(safeProps.speed*.85);// Advance the entrance clock, which only starts once in view.\nif(safeProps.appear&&appearStartRef.current!==null){const since=(ts-appearStartRef.current)/1e3;const linear=clamp((since-safeProps.appearDelay)/safeProps.appearDuration,0,1);appearProgressRef.current=easeProgress(linear,safeProps.appearEasing);}renderNow(false);const entranceRunning=safeProps.appear&&appearProgressRef.current<1;const stillAnimate=visibilityRef.current&&!reducedMotionRef.current&&(safeProps.spiral&&safeProps.speed>0||entranceRunning)&&!isStaticRenderer;if(!stillAnimate){stopLoop();return;}rafRef.current=window.requestAnimationFrame(t=>tickRef.current(t));};const syncScheduler=React.useCallback(()=>{if(typeof window===\"undefined\")return;const entrancePending=safeProps.appear&&appearProgressRef.current<1;const shouldAnimate=visibilityRef.current&&!reducedMotionRef.current&&(safeProps.spiral&&safeProps.speed>0||entrancePending)&&!isStaticRenderer;if(shouldAnimate){if(rafRef.current===null){lastTsRef.current=null;rafRef.current=window.requestAnimationFrame(t=>tickRef.current(t));}}else{stopLoop();renderNow(false);}},[isStaticRenderer,renderNow,safeProps.speed,safeProps.appear,safeProps.spiral,stopLoop]);// On the Framer canvas, in export, or under reduced-motion the entrance has\n// no chance to play — show the finished state rather than an empty frame.\n// Changing any entrance setting re-arms it, so tweaking a value replays it.\nReact.useEffect(()=>{const skip=!safeProps.appear||isStaticRenderer||reducedMotionRef.current;appearStartRef.current=null;appearProgressRef.current=skip?1:0;renderNow(false);syncScheduler();},[safeProps.appear,safeProps.appearDelay,safeProps.appearDuration,safeProps.rayLength,safeProps.rayOpacity,safeProps.appearEasing,isStaticRenderer,renderNow,syncScheduler]);React.useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const root=wrapperRef.current;const backCanvas=backCanvasRef.current;const frontCanvas=frontCanvasRef.current;if(!root||!backCanvas||!frontCanvas)return;const updateSize=()=>{// Layout size, not getBoundingClientRect: Framer's Appear scale\n// would otherwise size the canvas at 0.5x and leave it soft after\n// the spring settles back to 1.\nconst width=Math.max(1,root.offsetWidth||root.clientWidth||1);const height=Math.max(1,root.offsetHeight||root.clientHeight||1);const cap=safeProps.quality===\"low\"?1.25:2;const dpr=Math.min(cap,window.devicePixelRatio||1);const nextW=Math.max(1,Math.round(width*dpr));const nextH=Math.max(1,Math.round(height*dpr));for(const canvas of[backCanvas,frontCanvas]){if(canvas.width!==nextW||canvas.height!==nextH){canvas.width=nextW;canvas.height=nextH;}}sizeRef.current={width,height,dpr};setMeasuredBox(prev=>prev.width===width&&prev.height===height?prev:{width,height});renderNow(true);};updateSize();const resizeObserver=new ResizeObserver(updateSize);resizeObserver.observe(root);window.addEventListener(\"resize\",updateSize);return()=>{resizeObserver.disconnect();window.removeEventListener(\"resize\",updateSize);};},[renderNow,safeProps.quality]);React.useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\"){return;}const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const apply=()=>{reducedMotionRef.current=media.matches;// Reduced motion resolves after the entrance is armed on mount, so\n// settle it here too rather than sweeping in anyway.\nif(media.matches)appearProgressRef.current=1;renderNow(true);syncScheduler();};apply();if(typeof media.addEventListener===\"function\"){media.addEventListener(\"change\",apply);return()=>media.removeEventListener(\"change\",apply);}media.addListener(apply);return()=>media.removeListener(apply);},[renderNow,syncScheduler]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const root=wrapperRef.current;if(!root)return;const observer=new IntersectionObserver(entries=>{const inView=entries[0]?.isIntersecting??true;visibilityRef.current=inView;// The entrance plays the first time it is actually seen, so it\n// is never spent while the section is still below the fold.\nif(inView&&appearStartRef.current===null){appearStartRef.current=typeof performance!==\"undefined\"?performance.now():Date.now();}renderNow(false);syncScheduler();},{threshold:.01});observer.observe(root);return()=>observer.disconnect();},[renderNow,syncScheduler]);React.useEffect(()=>{if(typeof window===\"undefined\")return;renderNow(true);syncScheduler();return()=>stopLoop();},[renderNow,syncScheduler,stopLoop,safeProps.turns,safeProps.amplitude,safeProps.spread,safeProps.thickness,safeProps.particleCount,safeProps.ditherSize,safeProps.mix,safeProps.particleA,safeProps.particleB,safeProps.perspective,safeProps.textDepth,safeProps.quality,safeProps.speed]);// The fade is applied to the particle canvases only — never to the text\n// layer between them — so the tube dissolves at the edges instead of being\n// cut off, while the headline stays fully opaque.\nconst fadeMask=React.useMemo(()=>{const amount=clamp(finiteOr(edgeFade,0),0,.85);if(amount<=.001)return undefined;const stop=(amount*100).toFixed(2);const end=(100-amount*100).toFixed(2);const axis=String(fadeAxis||\"horizontal\").toLowerCase();const horizontal=`linear-gradient(to right, transparent 0%, #000 ${stop}%, #000 ${end}%, transparent 100%)`;const vertical=`linear-gradient(to bottom, transparent 0%, #000 ${stop}%, #000 ${end}%, transparent 100%)`;if(axis===\"vertical\")return{image:vertical,composite:undefined};if(axis===\"both\"){return{image:`${horizontal}, ${vertical}`,composite:\"intersect\"};}return{image:horizontal,composite:undefined};},[edgeFade,fadeAxis]);const insetFrac=clamp(finiteOr(inset,DEFAULT_INSET),0,20)/100;// Underline and Hover Dots listen to the nearest link (or parent) around\n// the component, since the component itself ignores the pointer.\nconst[hovered,setHovered]=React.useState(false);const hoverRef=React.useRef(false);const repaintRef=React.useRef(null);React.useEffect(()=>{hoverRef.current=hovered;repaintRef.current?.();},[hovered]);React.useEffect(()=>{if(!underline&&!hoverDots)return;const root=wrapperRef.current;const host=(root?.closest(\"a\"))??root?.parentElement;if(!host)return;const on=()=>setHovered(true);const off=()=>setHovered(false);host.addEventListener(\"mouseenter\",on);host.addEventListener(\"mouseleave\",off);host.addEventListener(\"focusin\",on);host.addEventListener(\"focusout\",off);return()=>{host.removeEventListener(\"mouseenter\",on);host.removeEventListener(\"mouseleave\",off);host.removeEventListener(\"focusin\",on);host.removeEventListener(\"focusout\",off);};},[underline,hoverDots]);const lines=React.useMemo(()=>{const copy=String(text??\"\");// A typed line break always starts a new line.\nif(/\\r?\\n/.test(copy)){const rows=copy.split(/\\r?\\n/).map(row=>row.trim());const kept=rows.filter(Boolean);return kept.length?kept:[copy];}if(!stackWords)return[copy];// Split on ordinary spaces only, so a non-breaking space keeps words\n// together on one line (e.g. \"get\\u00A0in\" / \"touch\").\nconst words=copy.trim().split(/[ \\t\\r\\n]+/).filter(Boolean);return words.length?words:[copy];},[text,stackWords]);// Web fonts usually land after the first measurement; re-fit once they do.\nconst[fontTick,setFontTick]=React.useState(0);React.useEffect(()=>{if(typeof document===\"undefined\"||!document.fonts)return;let alive=true;const bump=()=>{if(alive)setFontTick(n=>n+1);};document.fonts.ready.then(bump).catch(()=>{});document.fonts.addEventListener?.(\"loadingdone\",bump);return()=>{alive=false;document.fonts.removeEventListener?.(\"loadingdone\",bump);};},[]);// Above `scaleFrom` the headline grows in proportion to the component, so a\n// 1440 screen gets type 1.2x the size a 1200 screen gets, capped by\n// `maxTextScale`. A cap of 1 leaves the Font control's size untouched.\n// Fit Width instead sizes the widest line to the frame at every width.\n// Either way the type never grows past the frame, so it cannot wrap into\n// the spiral or the content below on narrow screens.\nconst scaledFont=React.useMemo(()=>{const base=font??{};const parsed=parseFontSize(base.fontSize);if(!parsed)return base// unrecognised unit — leave it alone\n;const from=clamp(finiteOr(scaleFrom,1200),320,3840);const cap=clamp(finiteOr(maxTextScale,1.4),1,3);let size=parsed.value;if(cap>1&&measuredBox.width>from){size*=Math.min(measuredBox.width/from,cap);}const unitPx=parsed.unit===\"px\"?1:parsed.unit===\"rem\"&&typeof document!==\"undefined\"?parseFloat(getComputedStyle(document.documentElement).fontSize)||16:0;if(unitPx>0&&measuredBox.width>0){const room=measuredBox.width*(1-insetFrac*2)*.98;const at100=widestLinePx(lines,base,100);if(at100>0){const fit=room/at100*100/unitPx;size=fitWidth?fit:Math.min(size,fit);}}if(size===parsed.value)return base;return{...base,fontSize:Number(size.toFixed(2))+parsed.unit};},[font,scaleFrom,maxTextScale,measuredBox.width,lines,fitWidth,fontTick,insetFrac]);React.useEffect(()=>{if(typeof window===\"undefined\"||!dotted)return;const canvas=dottedCanvasRef.current;const wrap=wrapperRef.current;if(!canvas||!wrap)return;const context=canvas.getContext(\"2d\");if(!context)return;const ink=resolveTokenColor(dots,wrap,\"#121110\");const baseInk=toRGBA(ink);const hoverInk=hoverDots?toRGBA(resolveTokenColor(hoverDots,wrap,ink)):baseInk;let inkMix=hoverRef.current&&hoverDots?1:0;let lastPaint=0;const reduceMotion=window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;const copyLines=lines;const parsed=parseFontSize(scaledFont.fontSize);const fontSize=parsed?parsed.value:112;const shouldAssemble=appear&&!reduceMotion&&!isStaticRenderer;let width=0;let height=0;let maxRadius=1;let driftDistance=0;let field=[];let frame=0;let running=true;function resize(){const w=Math.max(8,wrap.clientWidth||wrap.offsetWidth||1);const h=Math.max(8,wrap.clientHeight||wrap.offsetHeight||1);const ratio=Math.min(window.devicePixelRatio||1,2);width=Math.round(w);height=Math.round(h);canvas.width=Math.round(width*ratio);canvas.height=Math.round(height*ratio);canvas.style.width=width+\"px\";canvas.style.height=height+\"px\";context.setTransform(ratio,0,0,ratio,0,0);}function build(){resize();const off=document.createElement(\"canvas\");const ratio=Math.min(window.devicePixelRatio||1,2);off.width=Math.max(2,Math.round(width*ratio));off.height=Math.max(2,Math.round(height*ratio));const offCtx=off.getContext(\"2d\");if(!offCtx){field=[];return;}offCtx.setTransform(ratio,0,0,ratio,0,0);offCtx.clearRect(0,0,width,height);offCtx.fillStyle=\"#fff\";offCtx.font=fontString(scaledFont,fontSize);applyLetterSpacing(offCtx,scaledFont);offCtx.textAlign=\"center\";offCtx.textBaseline=\"alphabetic\";const dottedInk=measureInkLayout(copyLines.join(\" \"),scaledFont,fontSize,height);const lineBox=Math.max(1,lineHeightPx(scaledFont,fontSize));const blockTop=(height-lineBox*copyLines.length)/2;copyLines.forEach((line,i)=>{offCtx.fillText(line,width*.5,blockTop+i*lineBox+(lineBox-dottedInk.inkHeight)/2+dottedInk.ascent);});const pixels=offCtx.getImageData(0,0,off.width,off.height).data;const pitch=Math.max(3.2,spacing*(fontSize/96));maxRadius=Math.max(.4,Math.min(dotSize*(fontSize/120),pitch*.36));driftDistance=pitch*2.2;const columns=Math.max(1,Math.ceil(width/pitch));const rows=Math.max(1,Math.ceil(height/pitch));const threshold=Math.max(8,(1-weight)*210);field=[];for(let row=0;row<rows;row++){for(let column=0;column<columns;column++){const x=column*pitch+pitch*.5;const y=row*pitch+pitch*.5;const sx=Math.min(off.width-1,Math.round(x*ratio));const sy=Math.min(off.height-1,Math.round(y*ratio));const alpha=pixels[(sy*off.width+sx)*4+3];if(alpha<threshold)continue;const coverage=clamp01((alpha-threshold)/(255-threshold));const nx=x/Math.max(1,width)*2-1;const ny=y/Math.max(1,height)*2-1;const spreadN=Math.max(.001,Math.hypot(nx,ny));field.push({x,y,field:coverage,reach:clamp01(Math.hypot(nx,ny)/1.6),driftX:nx/spreadN,driftY:ny/spreadN,phase:hashXY(column,row)*Math.PI*2});}}}function paint(time){context.clearRect(0,0,width,height);const progress=shouldAssemble?appearProgressRef.current:1;const seconds=time/1e3*1;const idle=reduceMotion||isStaticRenderer?0:shimmer;if(hoverDots){const target=hoverRef.current?1:0;const dt=lastPaint?Math.min(64,time-lastPaint):16;inkMix+=(target-inkMix)*Math.min(1,dt/90);if(Math.abs(target-inkMix)<.01)inkMix=target;}lastPaint=time;context.fillStyle=inkMix<=0?ink:mixRGBA(baseInk,hoverInk,inkMix);context.beginPath();for(let i=0;i<field.length;i++){const dot=field[i];const settle=shouldAssemble?smoothstep(0,1,progress-dot.reach*.35):1;if(settle<=0)continue;const wave=1+idle*Math.sin(seconds*1.6+dot.phase-dot.reach*3.4);let radius=maxRadius*(.35+dot.field*.75)*settle*wave;if(radius<.12)continue;if(radius>maxRadius*1.7)radius=maxRadius*1.7;const offset=(1-settle)*driftDistance;const x=dot.x+dot.driftX*offset;const y=dot.y+dot.driftY*offset;context.moveTo(x+radius,y);context.arc(x,y,radius,0,Math.PI*2);}context.fill();}build();paint(isStaticRenderer?0:performance.now());if(isStaticRenderer||reduceMotion){repaintRef.current=()=>{inkMix=hoverRef.current&&hoverDots?1:0;paint(0);};const ro=new ResizeObserver(()=>{build();paint(0);});ro.observe(wrap);return()=>{running=false;repaintRef.current=null;ro.disconnect();};}const ro=new ResizeObserver(()=>build());ro.observe(wrap);const loop=time=>{if(!running)return;paint(time);frame=window.requestAnimationFrame(loop);};frame=window.requestAnimationFrame(loop);return()=>{running=false;window.cancelAnimationFrame(frame);ro.disconnect();};},[dotted,dots,hoverDots,dotSize,spacing,weight,shimmer,text,lines,scaledFont,appear,isStaticRenderer]);const layerStyle={position:\"absolute\",inset:0,display:\"block\",width:\"100%\",height:\"100%\",background:\"transparent\",pointerEvents:\"none\",...fadeMask?{maskImage:fadeMask.image,WebkitMaskImage:fadeMask.image,maskRepeat:\"no-repeat\",WebkitMaskRepeat:\"no-repeat\",maskSize:\"100% 100%\",WebkitMaskSize:\"100% 100%\",...fadeMask.composite?{maskComposite:fadeMask.composite,WebkitMaskComposite:\"source-in\"}:null}:null};const fitHeight=fittedFrameHeight(scaledFont,safeProps.spiral,safeProps.amplitude,lines.length);const incomingHeight=style?.height;const usesFitHeight=incomingHeight==null||incomingHeight===\"auto\"||incomingHeight===\"fit-content\"||incomingHeight===\"max-content\";const{height:_height,minHeight:_minHeight,...restStyle}=style??{};return /*#__PURE__*/_jsxs(\"div\",{ref:wrapperRef,style:{position:\"relative\",width:\"100%\",background:\"transparent\",overflow:\"hidden\",pointerEvents:\"none\",...restStyle,height:usesFitHeight?fitHeight:incomingHeight,minHeight:usesFitHeight?fitHeight:_minHeight??fitHeight},children:[/*#__PURE__*/_jsx(\"canvas\",{ref:backCanvasRef,\"aria-hidden\":\"true\",style:{...layerStyle,zIndex:0}}),dotted?/*#__PURE__*/_jsx(\"canvas\",{ref:dottedCanvasRef,\"aria-hidden\":\"true\",style:{position:\"absolute\",inset:0,zIndex:1,display:\"block\",width:\"100%\",height:\"100%\",pointerEvents:\"none\"}}):/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,zIndex:1,display:\"flex\",alignItems:\"center\",justifyContent:justifyFor(font),padding:`0 ${insetFrac*100}%`,pointerEvents:\"none\",color:textColor,...scaledFont,whiteSpace:\"pre\",...splitLines&&lines.length>1?{flexDirection:\"column\",alignItems:\"stretch\",justifyContent:\"center\"}:null},children:splitLines&&lines.length>1?lines.map((line,i)=>/*#__PURE__*/_jsx(\"div\",{style:{textAlign:i===0?\"left\":i===lines.length-1?\"right\":\"center\"},children:line},i)):lines.join(\"\\n\")}),underline?/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:`${insetFrac*100}%`,right:`${insetFrac*100}%`,bottom:0,height:clamp(finiteOr(underlineWeight,4),1,24),background:underlineColor||textColor||\"currentColor\",transform:`scaleX(${hovered?1:0})`,transformOrigin:hovered?\"left center\":\"right center\",transition:\"transform 0.6s cubic-bezier(0.22, 1, 0.36, 1)\",zIndex:3,pointerEvents:\"none\"}}):null,/*#__PURE__*/_jsx(\"canvas\",{ref:frontCanvasRef,\"aria-hidden\":\"true\",style:{...layerStyle,zIndex:2}})]});}DitherSpringType.displayName=\"DitherSpringType\";DitherSpringType.displayName=\"Spiral Type\";addPropertyControls(DitherSpringType,{text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"MORGEN\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"112px\",variant:\"Bold\",letterSpacing:\"-0.03em\",lineHeight:\"1em\",textAlign:\"center\"}},fitWidth:{type:ControlType.Boolean,title:\"Fit Width\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"On: fills the width. Off: uses the font size.\"},stackWords:{type:ControlType.Boolean,title:\"Stack Words\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},splitLines:{type:ControlType.Boolean,title:\"Split Lines\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"First word on the left, last word on the right.\",hidden:props=>!props.stackWords||Boolean(props.dotted)},inset:{type:ControlType.Number,title:\"Inset\",defaultValue:DEFAULT_INSET,min:0,max:20,step:.5,unit:\"%\",description:\"Space either side of the type.\"},textColor:{type:ControlType.Color,title:\"Text Colour\",defaultValue:\"var(--token-bc29dd3c-0c4d-4aed-b885-5afca02e7fa7, rgb(18, 17, 16))\",hidden:props=>Boolean(props.dotted)},dotted:{type:ControlType.Boolean,title:\"Dotted\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},dots:{type:ControlType.Color,title:\"Dots\",defaultValue:\"var(--token-bc29dd3c-0c4d-4aed-b885-5afca02e7fa7, rgb(18, 17, 16))\",hidden:props=>!props.dotted},dotSize:{type:ControlType.Number,title:\"Dot Size\",defaultValue:2.6,min:1,max:12,step:.1,unit:\"px\",hidden:props=>!props.dotted},spacing:{type:ControlType.Number,title:\"Spacing\",defaultValue:9,min:2,max:16,step:.5,unit:\"px\",hidden:props=>!props.dotted},weight:{type:ControlType.Number,title:\"Weight\",defaultValue:.5,min:.1,max:.9,step:.02,hidden:props=>!props.dotted},shimmer:{type:ControlType.Number,title:\"Shimmer\",defaultValue:.18,min:0,max:.8,step:.01,hidden:props=>!props.dotted},spiral:{type:ControlType.Boolean,title:\"Spiral\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},appear:{type:ControlType.Boolean,title:\"Appear\",defaultValue:true},appearDelay:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:5,step:.05,unit:\"s\",hidden:props=>!props.appear},appearDuration:{type:ControlType.Number,title:\"Duration\",defaultValue:2.6,min:.1,max:8,step:.1,unit:\"s\",hidden:props=>!props.appear},appearEasing:{type:ControlType.Enum,title:\"Easing\",options:[\"smooth\",\"out\",\"inOut\",\"linear\"],optionTitles:[\"Smooth\",\"Ease Out\",\"Ease In Out\",\"Linear\"],defaultValue:\"smooth\",hidden:props=>!props.appear},rayLength:{type:ControlType.Number,title:\"Ray Length\",defaultValue:.12,min:.01,max:.4,step:.01,hidden:props=>!props.appear||!props.spiral||!props.advanced},rayOpacity:{type:ControlType.Number,title:\"Ray Opacity\",defaultValue:1,min:0,max:1,step:.01,hidden:props=>!props.appear||!props.spiral||!props.advanced},scaleFrom:{type:ControlType.Number,title:\"Scale From\",description:\"Screen width where the font is at its set size.\",defaultValue:1200,min:320,max:2560,step:10,unit:\"px\",hidden:props=>Boolean(props.fitWidth)||!props.advanced},maxTextScale:{type:ControlType.Number,title:\"Max Scale\",defaultValue:1.4,min:1,max:3,step:.05,hidden:props=>Boolean(props.fitWidth)||!props.advanced},edgeFade:{type:ControlType.Number,title:\"Edge Fade\",defaultValue:.22,min:0,max:.85,step:.01,hidden:props=>!props.spiral},fadeAxis:{type:ControlType.Enum,title:\"Fade Axis\",options:[\"horizontal\",\"vertical\",\"both\"],optionTitles:[\"Sides\",\"Top & Bottom\",\"All Edges\"],defaultValue:\"horizontal\",displaySegmentedControl:true,hidden:props=>!props.spiral||!props.edgeFade},textDepth:{type:ControlType.Number,title:\"Text Depth\",description:\"Where the spiral passes the text, back to front.\",defaultValue:0,min:-1,max:1,step:.01,hidden:props=>!props.spiral||!props.advanced},particleA:{type:ControlType.Color,title:\"Particle Colour\",description:\"Highlights use a lighter tint of it.\",defaultValue:\"var(--token-f47bfaba-42b1-46d0-b217-f35ba6185cb9, rgb(228, 58, 58))\",hidden:props=>!props.spiral},mix:{type:ControlType.Number,title:\"Color Mix\",defaultValue:.32,min:0,max:1,step:.01,hidden:props=>!props.spiral||!props.advanced},turns:{type:ControlType.Number,title:\"Spiral Turns\",defaultValue:6,min:2,max:16,step:.1,hidden:props=>!props.spiral},amplitude:{type:ControlType.Number,title:\"Spiral Height\",defaultValue:.32,min:.05,max:.6,step:.01,hidden:props=>!props.spiral},spread:{type:ControlType.Number,title:\"Spiral Spread\",defaultValue:1,min:.3,max:2,step:.01,hidden:props=>!props.spiral||!props.advanced},thickness:{type:ControlType.Number,title:\"Thickness\",defaultValue:.34,min:.05,max:.6,step:.01,hidden:props=>!props.spiral||!props.advanced},particleCount:{type:ControlType.Number,title:\"Particles\",defaultValue:3200,min:200,max:2e4,step:100,hidden:props=>!props.spiral},particleSize:{type:ControlType.Number,title:\"Particle Size\",defaultValue:1,min:1,max:4,step:1,unit:\"px\",displayStepper:true,hidden:props=>!props.spiral||!props.advanced},spinSpeed:{type:ControlType.Number,title:\"Spin Speed\",defaultValue:.33,min:0,max:1,step:.01,hidden:props=>!props.spiral},perspective:{type:ControlType.Number,title:\"Perspective\",defaultValue:2.9,min:.8,max:4,step:.05,hidden:props=>!props.spiral||!props.advanced},quality:{type:ControlType.Enum,title:\"Quality\",options:[\"high\",\"auto\",\"low\"],optionTitles:[\"High\",\"Auto\",\"Low\"],defaultValue:\"high\",displaySegmentedControl:true,hidden:props=>!props.spiral||!props.advanced},advanced:{type:ControlType.Boolean,title:\"Advanced\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DitherSpringType\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"280\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DitherSpringType.map"],"mappings":"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"}