{"version":3,"file":"PixelButton.B-uEfcFC.mjs","names":["useMemo","useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/9hZxK0KWtlCeXnOjnWU4/I3DoBhsEbNUopJ9Dp5Xo/PixelButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useRef,useMemo,useEffect,useLayoutEffect}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer,Link}from\"framer\";/**\n * PixelButton\n *\n * Button whose hover state loads in as a pixelated dissolve — the\n * new background color builds up in blocky cells on a canvas under\n * the label. Sweep or sprinkle order, optional dither shimmer,\n * primary/secondary variants.\n *\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */const EASE=[.45,0,.15,1];// Framer's Link resolves link descriptors (internal routes + external\n// URLs) correctly. It's a routing wrapper, not a styleable element,\n// so it wraps the styled/measured button rather than becoming it.\n// Deterministic per-cell hash so the dissolve pattern is stable\nfunction cellHash(i){let h=i*374761393+668265263|0;h=(h^h>>13)*1274126177|0;return((h^h>>16)>>>0)/4294967295;}// Framer color styles arrive as \"var(--token-xxx, <fallback>)\".\n// CSS handles that, but canvas fillStyle and motion color\n// interpolation can't — unwrap to the concrete fallback value.\nfunction resolveColor(color){if(!color)return\"rgba(0,0,0,0)\";const m=color.match(/var\\([^,]+,\\s*(.+)\\)\\s*$/);return m?m[1].trim():color;}function isLegacyNeonHover(color){const raw=(color||\"\").trim().toLowerCase();if(!raw)return false;if(raw.includes(\"neon\"))return true;const resolved=resolveColor(color).trim().toLowerCase();return resolved===\"#c8fa00\"||resolved===\"#a8d94a\"||resolved===\"rgb(200,250,0)\"||resolved===\"rgb(200, 250, 0)\";}export default function PixelButton(props){const{label,link,variant,primary,secondary,pixel,size,radius,font,style}=props;const isStatic=useIsStaticRenderer();const colors=variant===\"secondary\"?secondary:primary;const normalizedColors=useMemo(()=>{const isLegacy=isLegacyNeonHover(colors?.hoverBg);if(!isLegacy)return colors;return{...colors,border:\"rgba(0,0,0,0)\",hoverBg:\"#111111\",hoverText:\"#FFFFFF\",hoverBorder:colors?.hoverBorder||\"#21C6DA\",hoverGlow:typeof colors?.hoverGlow===\"number\"?colors.hoverGlow:.16};},[colors]);const hoverBorderColor=resolveColor(normalizedColors.hoverBorder||\"#21C6DA\");const[hovering,setHovering]=useState(false);const[pastThreshold,setPastThreshold]=useState(false);const rootRef=useRef(null);const canvasRef=useRef(null);const progressRef=useRef(0);const lastRef=useRef(0);const[dims,setDims]=useState({w:0,h:0});useLayoutEffect(()=>{const el=rootRef.current;if(!el||typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(entries=>{const r=entries[0]?.contentRect;if(r)setDims({w:r.width,h:r.height});});ro.observe(el);return()=>ro.disconnect();},[]);const cols=Math.max(1,Math.ceil(dims.w/pixel.size));const rows=Math.max(1,Math.ceil(dims.h/pixel.size));// Per-cell activation thresholds, normalized to [0, 0.92] so\n// progress = 1 always fills every cell\nconst thresholds=useMemo(()=>{const t=new Float32Array(cols*rows);for(let r=0;r<rows;r++){for(let c=0;c<cols;c++){const i=r*cols+c;t[i]=pixel.mode===\"sweep\"?(c/Math.max(cols-1,1)*.65+cellHash(i)*.35)*.92:cellHash(i)*.92;}}return t;},[cols,rows,pixel.mode]);// ---- Dissolve loop: animates progress toward hover target and\n// paints the cell grid each frame, idling when settled ----\nuseEffect(()=>{const canvas=canvasRef.current;if(!canvas||dims.w===0||dims.h===0||isStatic)return;const dpr=Math.min(window.devicePixelRatio||1,2);canvas.width=dims.w*dpr;canvas.height=dims.h*dpr;const ctx=canvas.getContext(\"2d\");if(!ctx)return;ctx.scale(dpr,dpr);const px=pixel.size;const target=hovering?1:0;const speed=1/Math.max(pixel.speed,.1);const draw=p=>{ctx.clearRect(0,0,dims.w,dims.h);if(p<=0)return;ctx.fillStyle=resolveColor(normalizedColors.hoverBg);for(let r=0;r<rows;r++){for(let c=0;c<cols;c++){const t=thresholds[r*cols+c];if(p<=t)continue;const shimmering=pixel.shimmer&&p-t<.12;ctx.globalAlpha=shimmering?.45:1;ctx.fillRect(c*px,r*px,px,px);}}ctx.globalAlpha=1;};let raf=0;lastRef.current=performance.now();const tick=now=>{const dt=(now-lastRef.current)/1e3;lastRef.current=now;const p=progressRef.current;const next=target>p?Math.min(p+dt*speed,1):Math.max(p-dt*speed,0);progressRef.current=next;draw(next);setPastThreshold(next>.6);if(next!==target){raf=requestAnimationFrame(tick);}};// Repaint current state immediately (covers prop changes),\n// then animate if not already at target\ndraw(progressRef.current);setPastThreshold(progressRef.current>.6);if(progressRef.current!==target){raf=requestAnimationFrame(tick);}return()=>cancelAnimationFrame(raf);},[hovering,dims,cols,rows,thresholds,isStatic,normalizedColors.hoverBg,pixel.size,pixel.speed,pixel.shimmer]);const labelColor=resolveColor(pastThreshold?normalizedColors.hoverText:normalizedColors.text);const buttonStyle={...style,position:\"relative\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",padding:`${size.paddingY}px ${size.paddingX}px`,background:resolveColor(normalizedColors.bg),border:`1px solid ${resolveColor(normalizedColors.border)}`,borderRadius:radius,overflow:\"hidden\",textDecoration:\"none\",cursor:\"pointer\",WebkitTapHighlightColor:\"transparent\"};const inner=/*#__PURE__*/_jsxs(_Fragment,{children:[!isStatic?/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,\"aria-hidden\":true,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\"}}):null,/*#__PURE__*/_jsx(motion.span,{initial:false,animate:{color:labelColor},transition:{duration:.15},style:{position:\"relative\",zIndex:1,...font,whiteSpace:\"nowrap\"},children:label})]});const buttonNode=/*#__PURE__*/_jsx(motion.div,{ref:rootRef,onHoverStart:()=>setHovering(true),onHoverEnd:()=>setHovering(false),initial:false,animate:{borderColor:hovering?hoverBorderColor:resolveColor(normalizedColors.border),borderWidth:hovering?2:1},transition:{duration:.18},style:buttonStyle,children:inner});if(!link)return buttonNode;return /*#__PURE__*/_jsx(Link,{href:link,children:/*#__PURE__*/_jsx(\"a\",{\"aria-label\":label,style:{display:\"inline-block\",textDecoration:\"none\",WebkitTapHighlightColor:\"transparent\"},children:buttonNode})});}PixelButton.defaultProps={label:\"Learn More\",variant:\"primary\",primary:{bg:\"#111111\",text:\"#FFFFFF\",border:\"rgba(0,0,0,0)\",hoverBg:\"#111111\",hoverText:\"#FFFFFF\",hoverBorder:\"#21C6DA\",hoverGlow:.16},secondary:{bg:\"rgba(0,0,0,0)\",text:\"#111111\",border:\"#111111\",hoverBg:\"#111111\",hoverText:\"#FFFFFF\"},pixel:{size:6,speed:.45,mode:\"sweep\",shimmer:true},size:{paddingX:28,paddingY:16},radius:0,font:{family:\"Space Mono\",size:13,weight:\"Regular\",lineHeight:\"1em\",letterSpacing:\"0.08em\"}};addPropertyControls(PixelButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Learn More\"},link:{type:ControlType.Link,title:\"Link\"},variant:{type:ControlType.Enum,title:\"Variant\",options:[\"primary\",\"secondary\"],optionTitles:[\"Primary\",\"Secondary\"],displaySegmentedControl:true,defaultValue:\"primary\"},primary:{type:ControlType.Object,title:\"Primary\",icon:\"color\",controls:{bg:{type:ControlType.Color,title:\"BG\",defaultValue:\"#111111\"},text:{type:ControlType.Color,title:\"Text\",defaultValue:\"#FFFFFF\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"rgba(0,0,0,0)\"},hoverBg:{type:ControlType.Color,title:\"Hover BG\",defaultValue:\"#111111\"},hoverText:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#FFFFFF\"},hoverBorder:{type:ControlType.Color,title:\"Hover Border\",defaultValue:\"#21C6DA\"},hoverGlow:{type:ControlType.Number,title:\"Hover Glow\",min:0,max:.6,step:.01,defaultValue:.16}},hidden:p=>p.variant!==\"primary\"},secondary:{type:ControlType.Object,title:\"Secondary\",icon:\"color\",controls:{bg:{type:ControlType.Color,title:\"BG\",defaultValue:\"rgba(0,0,0,0)\"},text:{type:ControlType.Color,title:\"Text\",defaultValue:\"#111111\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"#111111\"},hoverBg:{type:ControlType.Color,title:\"Hover BG\",defaultValue:\"#111111\"},hoverText:{type:ControlType.Color,title:\"Hover Text\",defaultValue:\"#FFFFFF\"},hoverBorder:{type:ControlType.Color,title:\"Hover Border\",defaultValue:\"#21C6DA\"},hoverGlow:{type:ControlType.Number,title:\"Hover Glow\",min:0,max:.6,step:.01,defaultValue:.16}},hidden:p=>p.variant!==\"secondary\"},pixel:{type:ControlType.Object,title:\"Pixels\",icon:\"effect\",controls:{size:{type:ControlType.Number,title:\"Size\",min:2,max:20,step:1,unit:\"px\",defaultValue:6},speed:{type:ControlType.Number,title:\"Duration\",min:.15,max:1.5,step:.05,unit:\"s\",defaultValue:.45},mode:{type:ControlType.Enum,title:\"Mode\",options:[\"sweep\",\"sprinkle\"],optionTitles:[\"Sweep\",\"Sprinkle\"],displaySegmentedControl:true,defaultValue:\"sweep\"},shimmer:{type:ControlType.Boolean,title:\"Shimmer\",defaultValue:true}}},size:{type:ControlType.Object,title:\"Size\",controls:{paddingX:{type:ControlType.Number,title:\"Padding X\",min:8,max:80,unit:\"px\",defaultValue:28},paddingY:{type:ControlType.Number,title:\"Padding Y\",min:4,max:48,unit:\"px\",defaultValue:16}}},radius:{type:ControlType.Number,title:\"Radius\",min:0,max:999,defaultValue:0},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:PixelButton.defaultProps.font}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"PixelButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PixelButton.map"],"mappings":"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"}