{"version":3,"file":"MotionButton.C6sn6FPl.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/z8yLueAfgowryLBwftHb/YT21zcUHP2Bn3U4aADG0/MotionButton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion}from\"framer-motion\";import{useRef,useState,startTransition}from\"react\";const EASE=[.65,0,.35,1];const OUT=[.22,1,.36,1];const SANS=`\"Inter Display\", \"Inter Display Placeholder\", \"Inter\", sans-serif`;const ROT={right:0,upRight:-45,down:90};// direction the arrow travels when it swaps\nconst DIR={right:[1,0],upRight:[1,-1],down:[0,1]};function Arrow({color,size,icon}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 16 16\",fill:\"none\",\"aria-hidden\":\"true\",style:{display:\"block\",transform:`rotate(${ROT[icon]}deg)`},children:/*#__PURE__*/_jsx(\"path\",{d:\"M2 8h11.5M9 3.5 13.5 8 9 12.5\",stroke:color,strokeWidth:\"1.4\",strokeLinecap:\"square\"})});}// Arrow leaves in its own direction, a fresh one slides in behind it\nfunction SwapArrow({on,color,size,icon}){const[dx,dy]=DIR[icon];const far=k=>`${k*160}%`;return /*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",display:\"block\",width:size,height:size,overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(motion.span,{style:{position:\"absolute\",inset:0},animate:{x:on?far(dx):\"0%\",y:on?far(dy):\"0%\"},transition:{duration:.5,ease:EASE},children:/*#__PURE__*/_jsx(Arrow,{color:color,size:size,icon:icon})}),/*#__PURE__*/_jsx(motion.span,{style:{position:\"absolute\",inset:0},initial:false,animate:{x:on?\"0%\":far(-dx),y:on?\"0%\":far(-dy)},transition:{duration:.5,ease:EASE,delay:on?.08:0},children:/*#__PURE__*/_jsx(Arrow,{color:color,size:size,icon:icon})})]});}/**\n * Button with a cursor fill: on hover a circle of colour grows from wherever the\n * cursor enters, and drains back out toward where it leaves.\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CursorButton(props){const{label=\"Book a table\",link,newTab=false,icon=\"right\",background=\"#2A1C14\",textColor=\"#F7F3EC\",tileColor=\"#F3EEE6\",arrowColor=\"#2A1C14\",accent=\"#B4583A\",accentText=\"#F7F3EC\",border=\"rgba(0,0,0,0)\",fontSize=14}=props;const isStatic=useIsStaticRenderer();const ref=useRef(null);const[on,setOn]=useState(false);const[origin,setOrigin]=useState({x:0,y:0,r:0});const hover=on&&!isStatic;function local(e){const el=ref.current;if(!el)return{x:0,y:0,w:0,h:0};const b=el.getBoundingClientRect();return{x:e.clientX-b.left,y:e.clientY-b.top,w:b.width,h:b.height};}function enter(e){if(e.pointerType===\"touch\")return;const p=local(e);setOrigin({x:p.x,y:p.y,r:Math.hypot(Math.max(p.x,p.w-p.x),Math.max(p.y,p.h-p.y))});startTransition(()=>setOn(true));}function leave(e){if(e.pointerType===\"touch\")return;const p=local(e);setOrigin(o=>({...o,x:p.x,y:p.y}));startTransition(()=>setOn(false));}const tile=Math.round(fontSize*2.15);const arrowSize=Math.round(fontSize*1.05);const colorT={duration:.35,ease:EASE,delay:hover?.08:0};return /*#__PURE__*/_jsxs(motion.a,{ref:ref,href:link||undefined,target:newTab?\"_blank\":undefined,rel:newTab?\"noopener\":undefined,onPointerEnter:enter,onPointerLeave:leave,style:{...props.style,fontFamily:SANS,fontWeight:500,fontSize,lineHeight:\"1.2em\",letterSpacing:\"-0.005em\",position:\"relative\",display:\"inline-flex\",alignItems:\"center\",gap:12,padding:`5px 5px 5px ${Math.round(fontSize*1.15)}px`,borderRadius:3,background,boxShadow:`inset 0 0 0 1px ${border}`,textDecoration:\"none\",cursor:\"pointer\",overflow:\"hidden\",width:\"max-content\",isolation:\"isolate\"},children:[/*#__PURE__*/_jsx(motion.span,{\"aria-hidden\":\"true\",style:{position:\"absolute\",left:origin.x-origin.r,top:origin.y-origin.r,width:origin.r*2,height:origin.r*2,borderRadius:\"50%\",background:accent,zIndex:-1,pointerEvents:\"none\"},initial:false,animate:{scale:hover?1:0},transition:{duration:hover?.6:.45,ease:hover?OUT:EASE}}),/*#__PURE__*/_jsx(motion.span,{style:{whiteSpace:\"pre\",display:\"block\"},initial:false,animate:{color:hover?accentText:textColor},transition:colorT,children:label}),/*#__PURE__*/_jsx(motion.span,{style:{position:\"relative\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:tile,height:tile,borderRadius:2,flexShrink:0},initial:false,animate:{backgroundColor:hover?accentText:tileColor},transition:colorT,children:/*#__PURE__*/_jsx(SwapArrow,{on:hover,color:hover?accent:arrowColor,size:arrowSize,icon:icon})})]});}addPropertyControls(CursorButton,{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Book a table\"},link:{type:ControlType.Link,title:\"Link\"},newTab:{type:ControlType.Boolean,title:\"New tab\",defaultValue:false},icon:{type:ControlType.Enum,title:\"Arrow\",defaultValue:\"right\",options:[\"right\",\"upRight\",\"down\"],optionTitles:[\"→\",\"↗\",\"↓\"],displaySegmentedControl:true},background:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#2A1C14\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#F7F3EC\"},tileColor:{type:ControlType.Color,title:\"Tile\",defaultValue:\"#F3EEE6\"},arrowColor:{type:ControlType.Color,title:\"Arrow color\",defaultValue:\"#2A1C14\"},accent:{type:ControlType.Color,title:\"Hover fill\",defaultValue:\"#B4583A\"},accentText:{type:ControlType.Color,title:\"Hover text\",defaultValue:\"#F7F3EC\"},border:{type:ControlType.Color,title:\"Border\",defaultValue:\"rgba(0,0,0,0)\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:14,min:12,max:22,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CursorButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MotionButton.map"],"mappings":"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"}