{"version":3,"file":"CharacterArt_Prod.DoIAPqLT.mjs","names":["element","CharacterArtType"],"sources":["https:/framerusercontent.com/modules/5hKANwYjJpM8pzwwXBBP/sXcxWZYDDxS9ICYbAdWi/CharacterArt_Prod.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useId}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useInView}from\"framer-motion\";var CharacterArtType;(function(CharacterArtType){CharacterArtType[\"Grid\"]=\"grid\";CharacterArtType[\"Waves\"]=\"waves\";})(CharacterArtType||(CharacterArtType={}));/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n */export default function CharacterArt({type,speed,reverse,lines,gap,backgroundColor,radius,preview,scale,style,font,gridStyle,gridText,gridColors,waveColors}){const instanceId=useInstanceId();const{length:lineLength,width:lineWidth,rounded}=lines;const tileSize=(gridStyle===\"text\"?Math.max(parseFloat(font.fontSize),10):Math.max(lineLength,lineWidth))+gap;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldAnimate=!isCanvas||preview;const[dimensions,setDimensions]=useState({width:0,height:0});const containerRef=useRef(null);const mainRef=useRef(null);const isInView=useInView(containerRef,{once:false,amount:\"some\"});const cols=Math.max(1,Math.ceil(dimensions.width/tileSize))+(Math.ceil(dimensions.width/tileSize)%2===1?1:0);const rows=Math.max(1,Math.ceil(dimensions.height/tileSize));const n=cols*rows;useEffect(()=>{if(!containerRef.current)return;const element=containerRef.current;setDimensions({width:element.offsetWidth,height:element.offsetHeight});const resizeObserver=new ResizeObserver(entries=>{for(const entry of entries){const element=entry.target;setDimensions({width:element.offsetWidth,height:element.offsetHeight});}});resizeObserver.observe(containerRef.current);return()=>{resizeObserver.disconnect();};},[tileSize]);useEffect(()=>{if(!shouldAnimate||!isInView)return;let animationFrame;let time=0;let lastFrameTime=0;const frameInterval=1e3/30// 30 fps\n;const updateTime=timestamp=>{if(!lastFrameTime||timestamp-lastFrameTime>=frameInterval){const direction=reverse?-1:1;time=(time+10*direction)%864e5;if(mainRef.current){mainRef.current.style.setProperty(\"--t\",time);mainRef.current.style.setProperty(\"--speed-factor\",speed/25);}lastFrameTime=timestamp;}animationFrame=requestAnimationFrame(updateTime);};animationFrame=requestAnimationFrame(updateTime);return()=>cancelAnimationFrame(animationFrame);},[speed,reverse,shouldAnimate,isInView]);let styleContent=\"\";const elements=[];switch(type){case\"grid\":styleContent=`\n@property --t {\n  syntax: \"<integer>\";\n  initial-value: 0;\n  inherits: true\n}\n\n@property --speed-factor {\n  syntax: \"<number>\";\n  initial-value: 1;\n  inherits: true\n}\n\ndiv.${instanceId}-c {\n  position: relative;\n  width: fit-content;\n  height: fit-content;\n  margin: 0 auto;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n}\n\ndiv.${instanceId}-l {\n  position: absolute;\n  --offset-x: calc(var(--x) - 0.5);\n  --abs-x: calc(max(var(--offset-x), -1 * var(--offset-x)));\n  --offset-y: calc(var(--y) - 0.5);\n  --abs-y: calc(max(var(--offset-y), -1 * var(--offset-y)));\n  will-change: transform, opacity, color;\n\n  --l: calc(\n      sin(var(--abs-x) / cos(sin(var(--abs-y) * 2 + 60) * 2.5) * 3 - (var(--t) * var(--speed-factor)) / 350)\n    );\n\t--top-range: max(min(calc((var(--l) - 0.6) / 0.4 * 100%), 100%), 0%);\n\t--base-color: color-mix(in ${gridColors.interpolation}, \n\t\t${gridColors.center} calc(var(--abs-x) * 200%), \n\t\t${gridColors.sides} calc((0.5 - var(--abs-x)) * 200%)\n\t);\n\tcolor: ${gridColors.in?`color-mix(in ${gridColors.interpolation}, \n\t\t\tvar(--base-color) calc(100% - var(--top-range)), \n\t\t\t${gridColors.in} var(--top-range)\n\t\t)`:`var(--base-color)`};\n\topacity: max(var(--l), 0.05);\n\n  ${gridStyle===\"text\"?`text-align: center;\n       display: flex;\n       justify-content: center;\n       align-items: center;\n       width: ${tileSize}px;\n       height: ${tileSize}px;`:`background: currentColor;\n\t\t\t width: ${lineWidth}px;\n       height: ${lineLength}px;\n       --sign-x: calc(var(--offset-x) / var(--abs-x));\n       rotate: calc(var(--l) * 90deg * var(--sign-x));\n       border-radius: ${rounded?Math.min(lineLength,lineWidth)/2:0}px;`}\n}`;elements.push(/*#__PURE__*/_jsx(\"div\",{ref:mainRef,className:`${instanceId}-c`,style:{\"--t\":0,width:`${cols*tileSize}px`,height:`${rows*tileSize}px`,pointerEvents:\"none\"},children:Array.from({length:n}).map((_,i)=>{const x=i%cols*tileSize;const y=Math.floor(i/cols)*tileSize;const xRatio=(i+1)%cols/(cols+1);const yRatio=(rows-Math.floor(i/cols))/rows;const textContent=gridStyle===\"text\"?gridText.split(\"\")[i%Math.max(1,gridText.length)]:null;return /*#__PURE__*/_jsx(\"div\",{className:`${instanceId}-l`,style:{\"--x\":xRatio,\"--y\":yRatio,left:gridStyle===\"lines\"?x+tileSize/2:x,top:y},children:textContent},i);})}));break;case\"waves\":styleContent=`\n.${instanceId}-l {\n\t--dash-width: ${10*scale};\n\t--gap-width: ${100*scale};\n\n\tstroke-dasharray: var(--dash-width) var(--gap-width);\n\tstroke-dashoffset: var(--dash-width);\n\twill-change: stroke, stroke-dashoffset;\n\tanimation: ${instanceId}-pulse 2s cubic-bezier(0.65, 0, 0.35, 1) infinite alternate-reverse;\n\tanimation-delay: var(--delay);\n}\n\n@keyframes ${instanceId}-pulse {\n\t0% { stroke-dashoffset: var(--dash-width); }\n\t50% { stroke: ${waveColors.color2}; }\n\t100% { stroke-dashoffset: calc(var(--gap-width) * -8px + 40px); }\n}`;const numLines=Math.max(1,Math.ceil(dimensions.width/(gap+lineWidth)))+(Math.ceil(dimensions.width/(gap+lineWidth))%2===1?1:0);elements.push(/*#__PURE__*/_jsx(\"svg\",{ref:mainRef,style:{position:\"absolute\",left:\"0\",top:\"0\",width:\"100%\",height:\"100%\",pointerEvents:\"none\"},viewBox:`0 0 ${dimensions.width} ${dimensions.height}`,preserveAspectRatio:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:Array.from({length:numLines}).map((_,i)=>{const x=i/(numLines-1)*dimensions.width;const delayFactor=1-Math.abs((i-numLines/2)/numLines);return /*#__PURE__*/_jsxs(\"g\",{style:{\"--delay\":`${delayFactor*speed/50}s`},children:[/*#__PURE__*/_jsx(\"line\",{x1:x,y1:\"0\",x2:x,y2:dimensions.height,stroke:waveColors.lineColor,strokeWidth:lineWidth}),/*#__PURE__*/_jsx(\"line\",{x1:x,y1:\"0\",x2:x,y2:dimensions.height,stroke:waveColors.color1,strokeWidth:lineWidth,className:`${instanceId}-l`})]},i);})},`dash-waves-${numLines}`));break;}return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{overflow:\"hidden\",position:\"relative\",backgroundColor:backgroundColor,borderRadius:radius,...style,...font},children:[/*#__PURE__*/_jsx(\"style\",{children:styleContent}),elements]});}CharacterArt.displayName=\"Character Art\";addPropertyControls(CharacterArt,{preview:{type:ControlType.Boolean,defaultValue:true,description:\"Play in Framer editor\"},type:{type:ControlType.Enum,defaultValue:\"grid\",options:Object.values(CharacterArtType),optionTitles:[\"Grid\",\"Waves\"],displaySegmentedControl:true},gridStyle:{type:ControlType.Enum,defaultValue:\"lines\",options:[\"lines\",\"text\"],optionTitles:[\"Lines\",\"Text\"],displaySegmentedControl:true,hidden:props=>props.type!==\"grid\"},gridText:{type:ControlType.String,defaultValue:\"Framer\",title:\"Text\",hidden:props=>props.type!==\"grid\"||props.gridStyle!==\"text\"},font:{type:\"font\",defaultFontType:\"monospace\",controls:\"extended\",defaultValue:{fontSize:24,lineHeight:1},hidden:props=>props.type!==\"grid\"||props.gridStyle!==\"text\"},speed:{type:ControlType.Number,defaultValue:50,min:0,max:100,step:1,unit:\"%\"},reverse:{type:ControlType.Boolean,defaultValue:false,hidden:props=>props.type!==\"grid\"},lines:{type:ControlType.Object,hidden:props=>props.type!==\"grid\"||props.gridStyle!==\"lines\",controls:{length:{type:ControlType.Number,defaultValue:24,min:10,max:200,step:1,displayStepper:true},width:{type:ControlType.Number,defaultValue:1,min:.5,max:100,step:.5,displayStepper:true},rounded:{type:ControlType.Boolean,defaultValue:false}}},gap:{type:ControlType.Number,defaultValue:5,min:0,max:100,step:1,displayStepper:true},scale:{type:ControlType.Number,defaultValue:1,min:1,max:10,step:.5,displayStepper:true,hidden:props=>props.type!==\"waves\"},gridColors:{type:ControlType.Object,title:\"Colors\",hidden:props=>props.type!==\"grid\",controls:{in:{type:ControlType.Color,defaultValue:\"#FFFFFF\",optional:true},center:{type:ControlType.Color,defaultValue:\"#00FFA6\"},sides:{type:ControlType.Color,defaultValue:\"#FF1500\"},interpolation:{type:ControlType.Enum,options:[\"lch\",\"hsl\",\"srgb\"],optionTitles:[\"LCH\",\"HSL\",\"RGB\"],displaySegmentedControl:true,title:\"Mode\",description:\"The color blending method\"}}},waveColors:{type:ControlType.Object,title:\"Colors\",buttonTitle:\"Colors\",controls:{color1:{type:ControlType.Color,defaultValue:\"#FFFFFF\"},color2:{type:ControlType.Color,defaultValue:\"#0099FF\"},lineColor:{type:ControlType.Color,defaultValue:\"#222\"}},hidden:props=>props.type!==\"waves\"},backgroundColor:{type:ControlType.Color,optional:true,defaultValue:\"#000000\",title:\"Background\"},radius:{type:ControlType.BorderRadius,defaultValue:\"0px\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});const useInstanceId=()=>{const id=useId();const cleanId=id.replace(/:/g,\"\");const instanceId=`frameruni-${cleanId}`;return instanceId;};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CharacterArt\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerIntrinsicHeight\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CharacterArt_Prod.map"],"mappings":"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"}